package model

import (
	"gorm.io/gorm"
	"time"
)

type Live struct {
	Id        uint           `gorm:"column:id;type:int UNSIGNED;primaryKey;not null;" json:"id"`
	LiveName  string         `gorm:"column:live_name;type:varchar(255);comment:直播间名称;not null;" json:"live_name"`                              // 直播间名称
	Brief     string         `gorm:"column:brief;type:varchar(255);comment:简介;not null;" json:"brief"`                                         // 简介
	Title     string         `gorm:"column:title;type:varchar(255);comment:标题;not null;" json:"title"`                                         // 标题
	Describe  string         `gorm:"column:describe;type:varchar(255);comment:描述;not null;" json:"describe"`                                   // 描述
	CreatedAt time.Time      `gorm:"column:created_at;type:datetime(3);comment:添加时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 添加时间
	UpdatedAt time.Time      `gorm:"column:updated_at;type:datetime(3);comment:修改时间;not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"` // 修改时间
	DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:删除时间;default:NULL;" json:"deleted_at"`                          // 删除时间
}
type Interaction struct {
	Id        uint           `gorm:"column:id;type:int UNSIGNED;primaryKey;not null;" json:"id"`
	UserId    int            `gorm:"column:user_id;type:int;comment:用户ID;not null;" json:"user_id"`                                            // 用户ID
	Content   string         `gorm:"column:content;type:varchar(255);comment:评论内容;not null;" json:"content"`                                   // 评论内容
	CreatedAt time.Time      `gorm:"column:created_at;type:datetime(3);comment:添加时间;not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"` // 添加时间
	UpdatedAt time.Time      `gorm:"column:updated_at;type:datetime(3);comment:修改时间;not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"` // 修改时间
	DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);comment:删除时间;default:NULL;" json:"deleted_at"`                          // 删除时间
}
type LiveReward struct {
	Id            uint      `gorm:"column:id;type:bigint UNSIGNED;primaryKey;not null;" json:"id"`
	SendUserId    uint      `gorm:"column:send_user_id;type:bigint UNSIGNED;comment:送礼物人id;not null;default:0;" json:"send_user_id"`       // 送礼物人id
	ReceiveUserId uint      `gorm:"column:receive_user_id;type:bigint UNSIGNED;comment:收礼物人id;not null;default:0;" json:"receive_user_id"` // 收礼物人id
	LiveId        uint      `gorm:"column:gift_id;type:bigint UNSIGNED;comment:礼物id;not null;default:0;" json:"gift_id"`                   // 礼物id
	CreatedAt     time.Time `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`
}

func (l *Live) TableName() string {
	return "live"
}
func (i *Interaction) TableName() string {
	return "interaction"
}
func (lr *LiveReward) TableName() string {
	return "gift_reward"
}
